// 用于代码兼容定义，比如新老驱动大小写不一致之类的

#ifndef _COMPATIBLE_H
#define _COMPATIBLE_H

// gpio管腿编号
#define GPIO_Pin_0							GPIO_PIN_0
#define GPIO_Pin_1							GPIO_PIN_1
#define GPIO_Pin_2							GPIO_PIN_2
#define GPIO_Pin_3							GPIO_PIN_3
#define GPIO_Pin_4							GPIO_PIN_4
#define GPIO_Pin_5							GPIO_PIN_5
#define GPIO_Pin_6							GPIO_PIN_6
#define GPIO_Pin_7							GPIO_PIN_7
#define GPIO_Pin_8							GPIO_PIN_8
#define GPIO_Pin_9							GPIO_PIN_9
#define GPIO_Pin_10							GPIO_PIN_10
#define GPIO_Pin_11							GPIO_PIN_11
#define GPIO_Pin_12							GPIO_PIN_12
#define GPIO_Pin_13							GPIO_PIN_13
#define GPIO_Pin_14							GPIO_PIN_14
#define GPIO_Pin_15							GPIO_PIN_15

// 
#define	Bit_RESET			GPIO_PIN_RESET
#define	Bit_SET				GPIO_PIN_SET


#define GPIO_Mode_OUT						GPIO_MODE_OUTPUT_PP

#define GPIO_Mode_Out_PP					GPIO_MODE_OUTPUT_PP
#define GPIO_Mode_Out_OD					GPIO_MODE_OUTPUT_OD
#define GPIO_Mode_AIN						GPIO_MODE_ANALOG
#define GPIO_Mode_AF_PP					GPIO_MODE_AF_PP
#define GPIO_Mode_AF_OD					GPIO_MODE_AF_OD
#define GPIO_Mode_IN_FLOATING				GPIO_MODE_INPUT


// 速度对应
#define GPIO_Speed_50MHz					GPIO_SPEED_FREQ_HIGH
#define GPIO_Speed_10MHz					GPIO_SPEED_FREQ_MEDIUM
#define GPIO_Speed_2MHz					GPIO_SPEED_FREQ_LOW


#define GPIO_Init(a,b)						HAL_GPIO_Init(a,b)
#define	GPIO_WriteBit(a,b,c)				HAL_GPIO_WritePin(a,b,c)
#define	GPIO_ReadInputDataBit(a,b)			HAL_GPIO_ReadPin(a,b)

// 开关全局中断的几个指令的兼容
#define CPU_IntDis							__disable_irq
#define CPU_IntEn							__enable_irq
#define CPU_SR								UINT32
#define OS_ENTER_CRITICAL()					{cpu_sr = __get_PRIMASK(); __disable_irq();}
#define OS_EXIT_CRITICAL()					{__set_PRIMASK (cpu_sr);}

#endif

